package com.ruoyi.hxf.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.hxf.domain.Message;
import com.ruoyi.system.mapper.SysUserMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 信息 数据层
 *
 * @author hxf
 */
public interface MessageMapper  extends BaseMapperPlus<MessageMapper, Message, Message> {
    int insertMessage(Message message);

    /**
     * 获取自己的发送消息列表或者接收的消息列表（适用于手机端和电脑端）
     *
     * @param message 信息
     * @return 信息集合
     */
    List<Message> selectHomeWorkMessageList(Message message);

    /**
     * 查询作业
     * @param message
     * @return
     */
    List<Message> selectMessageList(Message message);

    /**
     * 批量删除收到的消息信息
     *
     * @param msgIds 需要删除的消息ID
     * @return 结果
     */
    int deleteMessageByIds(@Param("msgIds")Long[] msgIds,@Param("i") int i);

    /**
     * 查询置顶的数量
     *
     * @return
     */
    Integer selectToppingQuantity();

    /**
     * 设置置顶的排序
     *
     * @param msgId 消息ID
     * @param i     等级
     */
    void updateToppingQuantity(@Param("msgId") Long msgId, @Param("i") int i);

    /**
     * 标记是否读取
     *
     * @param msgId 消息ID
     * @param i     状态
     */
    void updateReadStatus(@Param("msgId") Long msgId, @Param("i") int i);


    Page<Message> selectPageHomeWorkMessageList(@Param("page") Page<Message> page, @Param(Constants.WRAPPER)
        Wrapper<Message> queryWrapper);

    /**
     * 查询我发送的班级信息列表
     * @param page
     * @param queryWrapper
     * @return
     */
    Page<Message> selectPageList(@Param("page") Page<Message> page,@Param(Constants.WRAPPER) Wrapper<Message> queryWrapper);



}
